
package be.khleuven.kevinvranken.entiteiten;
import be.khleuven.kevinvranken.SpelPaneel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;

/**
 *
 * @author kevin
 * Waarden die elk wezen op het scherm dienen te bevatten
 */
public abstract class Onbeweegbaar extends Entiteit{

    private Shape vorm;
    private Color kleur;

    /**
     * Een nieuw personage aanmaken op basis van de naam en de locatie.
     *
     * @param referentie De referentie naar de afbeelding die we willen tekenen
     * @param x de beginpositie op de X-as
     * @param y de beginpositie op de Y-as
     */
    public Onbeweegbaar(SpelPaneel spelPaneel, Shape vorm, Color kleur, int x, int y){
        super(spelPaneel,x,y);
        setVorm(vorm);
        this.kleur=kleur;
    }

    /**
     * de Sprite tekenen op de gegevens Graphics
     *
     * @param g Een instantie van Graphics waarop getekent moet worden
     */
    public void teken(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g.setColor(getKleur());
        g2.fill(vorm);
    }

    /**
     * Do the logic associated with this entity. This method
     * will be called periodically based on game events
     */
    public void doLogic() {
    }

    /**
     * Actie ondernomen bij een collision.
     *
     * @param andere het personage waarmee we in botsing zijn gekomen.
     */
    public abstract void collidedWith(Entiteit andere);

    /**
     * @return the vorm
     */
    public Shape getVorm() {
        return vorm;
    }

    /**
     * @param vorm the vorm to set
     */
    public void setVorm(Shape vorm) {
        this.vorm = vorm;
        getCollisionRechthoek().setBounds((int)x, (int)y, vorm.getBounds().width, vorm.getBounds().height);
    }

    /**
     * @return the kleur
     */
    public Color getKleur() {
        return kleur;
    }

    /**
     * @param kleur the kleur to set
     */
    public void setKleur(Color kleur) {
        this.kleur = kleur;
    }



}
